10 REM VERSION 1.1: LINES 830,950 MODIFIED, LINES 485-487 ADDED 100 POKE 56,50:CLR:DIM IN$,I,J,A,B,A$,B$,A(7),N$ 110 C4=48:C6=16:C7=7:Z2=2:Z4=254:Z5=255:Z6=256:Z7=127 120 FA=PEEK(45)+Z6*PEEK(46):BS=PEEK(55)+Z6*PEEK(56):H$="0123456789ABCDEF" 130 R$=CHR$(13):L$="[157]":S$=" ":D$=CHR$(20):Z$=CHR$(0):T$="" 140 SD=54272:FOR I=SD TO SD+23:POKE I,0:NEXT:POKE SD+24,15:POKE 788,52 150 PRINT"[147]"CHR$(142)CHR$(8):POKE 53280,15:POKE 53281,15 160 PRINT T$"  [164][164][164][164][164][164][164][164] "SPC(28)" [146] MLX II  "SPC(28)" " 170 PRINT" COMPUTE!'S MACHINE LANGUAGE EDITOR" 180 PRINT"[144]STARTING ADDRESS[151]";:GOSUB300:SA=AD:GOSUB1040:IF F THEN180 190 PRINT"[144] ENDING ADDRESS[151]";:GOSUB300:EA=AD:GOSUB1030:IF F THEN190 200 INPUT"[144]CLEAR WORKSPACE [Y/N][151]";A$:IF LEFT$(A$,1)<>"Y"THEN220 210 PRINT"WORKING...";:FORI=BS TO BS+EA-SA+7:POKE I,0:NEXT:PRINT"DONE" 220 PRINTTAB(10)"[144] MLX COMMAND MENU [151]":PRINT T$"E[146]NTER DATA" 230 PRINT T$"D[146]ISPLAY DATA":PRINT T$"L[146]OAD FILE" 240 PRINT T$"S[146]AVE FILE":PRINT T$"Q[146]UIT[144]" 250 GET A$:IF A$=N$ THEN250 260 A=0:FOR I=1 TO 5:IF A$=MID$("EDLSQ",I,1)THEN A=I:I=5 270 NEXT:ON A GOTO420,610,690,700,280:GOSUB1060:GOTO250 280 PRINT" QUIT ":INPUT"[151]ARE YOU SURE [Y/N]";A$:IF LEFT$(A$,1)<>"Y"THEN220 290 POKE SD+24,0:END 300 IN$=N$:AD=0:INPUTIN$:IFLEN(IN$)<>4THENRETURN 310 B$=IN$:GOSUB320:AD=A:B$=MID$(IN$,3):GOSUB320:AD=AD*256+A:RETURN 320 A=0:FOR J=1 TO 2:A$=MID$(B$,J,1):B=ASC(A$)-C4+(A$>"@")*C7:A=A*C6+B 330 IF B<0 OR B>15 THEN AD=0:A=-1:J=2 340 NEXT:RETURN 350 B=INT(A/C6):PRINT MID$(H$,B+1,1);:B=A-B*C6:PRINT MID$(H$,B+1,1);:RETURN 360 A=INT(AD/Z6):GOSUB350:A=AD-A*Z6:GOSUB350:PRINT":"; 370 CK=INT(AD/Z6):CK=AD-Z4*CK+Z5*(CK>Z7):GOTO390 380 CK=CK*Z2+Z5*(CK>Z7)+A 390 CK=CK+Z5*(CK>Z5):RETURN 400 PRINT"STARTING AT[151]";:GOSUB300:IF IN$<>N$ THEN GOSUB1030:IF F THEN400 410 RETURN 420 PRINT" ENTER DATA ":GOSUB400:IF IN$=N$ THEN220 430 OPEN3,3:PRINT 440 POKE198,0:GOSUB360:IF F THEN PRINT IN$:PRINT"[145]"; 450 FOR I=0 TO 24 STEP 3:B$=S$:FOR J=1 TO 2:IF F THEN B$=MID$(IN$,I+J,1) 460 PRINT""B$L$;:IF I<24THEN PRINT"[146]"; 470 GET A$:IF A$=N$ THEN470 480 IF(A$>"/"ANDA$<":")OR(A$>"@"ANDA$<"G")THEN540 485 A=-(A$="M")-2*(A$=",")-3*(A$=".")-4*(A$="/")-5*(A$="J")-6*(A$="K") 486 A=A-7*(A$="L")-8*(A$=":")-9*(A$="U")-10*(A$="I")-11*(A$="O")-12*(A$="P") 487 A=A-13*(A$=S$):IF A THEN A$=MID$("ABCD123E456F0",A,1):GOTO 540 41451 (null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)POKE(null)LOG(null)RETURN(null)(null)(null)(null)zo(null)(null)POS(null)QGOSUBRND(null)(null)(null):(null)(null)J(null)=(null)(null)(null)(null)(null)(null)FOR(null)(null)\(null)(null)(null)(null)GOSUB(null)END(null)(null)(null)(null)(null)U(null)(null)(null)VERIFYPRINT#(null)VERIFY(null)(null)(null)PRINT#u(null)VERIFY(null)PRINT#(null)(null)(null)xx(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)PRINT#(null)(null)(null)")[175]F [167][153] B$L$;:[137]540 520 [139] A$[179][177]L$ [175] A$[179][177]D$ [176]((I[178]0)[175](J[178]1))[167] [141]1060:[137]470 530 A$[178]L$[170]S$[170]L$:[153] B$L$;:J[178]2[171]J:[139] J [167] [153] L$;:I[178]I[171]3 540 [153] A$;:[130] J:[153] S$; 550 [130] I:[153]:[153]"ON";:[132]3,IN$:[139] IN$[178]N$ [167] [160]3:[137]220 560 [129] I[178]1 [164] 25 [169]3:B$[178][202](IN$,I):[141]320:[139] I[179]25 [167] [141]380:A(I[173]3)[178]A 570 [130]:[139] A[179][177]CK [167] [141]1060:[153]"STOP ERROR: REENTER LINE POKE":F[178]1:[137]440 580 [141]1080:B[178]BS[170]AD[171]SA:[129] I[178]0 [164] 7:[151] B[170]I,A(I):[130] 590 AD[178]AD[170]8:[139] AD[177]EA [167] [160]3:[153]"** END OF ENTRY **STOP":[137]700 600 F[178]0:[137]440 610 [153]"LOAD DISPLAY DATA ":[141]400:[139] IN$[178]N$ [167]220 620 [153]"PRESS: SPACEWAIT TO PAUSE, RETURNWAIT TO BREAKPOKE" 630 [141]360:B[178]BS[170]AD[171]SA:[129]I[178]B[164] B[170]7:A[178][194](I):[141]350:[141]380:[153] S$; 640 [130]:[153]"";:A[178]CK:[141]350:[153] 650 F[178]1:AD[178]AD[170]8:[139] AD[177]EA [167][153]"** END OF DATA **":[137]220 660 [161] A$:[139] A$[178]R$ [167] [141]1080:[137]220 670 [139] A$[178]S$ [167] F[178]F[170]1:[141]1080 680 [145]F[137]630,660,630 690 [153]" LOAD DATA ":OP[178]1:[137]710 700 [153]" SAVE FILE ":OP[178]0 710 IN$[178]N$:[133]"FILENAMEPOKE";IN$:[139] IN$[178]N$ [167]220 720 F[178]0:[153]"STOPTWAITAPE OR DWAITISK: POKE"; 730 [161] A$:[139] A$[178]"T"[167] [153]"T":[137]880 740 [139] A$[179][177]"D"[167]730 750 [153]"D":[159]15,8,15,"I0:":B[178]EA[171]SA:IN$[178]"0:"[170]IN$:[139] OP [167]810 760 [159] 1,8,8,IN$[170]",P,W":[141]860:[139] A [167]220 770 AH[178][181](SA[173]256):AL[178]SA[171](AH[172]256):[152]1,[199](AL);[199](AH); 780 [129] I[178]0 [164] B:[152]1,[199]([194](BS[170]I));:[139] ST [167]800 790 [130]:[160]1:[160]15:[137]940 800 [141]1060:[153]"STOPERROR DURING SAVE:POKE":[141]860:[137]220 810 [159] 1,8,8,IN$[170]",P,R":[141]860:[139] A [167]220 820 [161]#1,A$,B$:AD[178][198](A$[170]Z$)[170]256[172][198](B$[170]Z$):[139] AD[179][177]SA [167] F[178]1:[137]850 830 [129] I[178]0 [164] B:[161]#1,A$:[151] BS[170]I,[198](A$[170]Z$):[139](I[179][177]B)[175] ST [167] F[178]2:AD[178]I:I[178]B 840 [130]:[139] ST[179][177]64 [167] F[178]3 850 [160]1:[160]15:[145] [182](F[177]0)[170]1 [137]960,970 860 [132]15,A,A$:[139] A [167] [160]1:[160]15:[141]1060:[153]"ERROR: "A$ 870 [142] 880 [151]183,[194](FA[170]2):[151]187,[194](FA[170]3):[151]188,[194](FA[170]4):[139]OP[178]0[167]920 890 [158] 63466:[139]([194](783)[175]1)[167] [141]1060:[153]" FILE NOT FOUND ":[137]690 900 AD[178][194](829)[170]256[172][194](830):[139] AD[179][177]SA [167] F[178]1:[137]970 910 A[178][194](831)[170]256[172][194](832)[171]1:F[178]F[171]2[172](A[179]EA)[171]3[172](A[177]EA):AD[178]A[171]AD:[137]930 920 A[178]SA:B[178]EA[170]1:[141]1010:[151]780,3:[158] 63338 930 A[178]BS:B[178]BS[170](EA[171]SA)[170]1:[141]1010:[145] OP [137]950:[158] 63591 940 [141]1080:[153]"** SAVE COMPLETED **":[137]220 950 [151]147,0:[158] 63562:[139] ST[177]0 [167]970 960 [141]1080:[153]"** LOAD COMPLETED **":[137]220 970 [141]1060:[153]"STOPERROR DURING LOAD:POKE":[145] F [141]980,990,1000:[137]220 980 [153]"INCORRECT STARTING ADDRESS (";:[141]360:[153]")":[142] 990 [153]"LOAD ENDED AT ";:AD[178]SA[170]AD:[141]360:[153] D$:[142] 1000 [153]"TRUNCATED AT ENDING ADDRESS":[142] 1010 AH[178][181](A[173]256):AL[178]A[171](AH[172]256):[151]193,AL:[151]194,AH 1020 AH[178][181](B[173]256):AL[178]B[171](AH[172]256):[151]174,AL:[151]175,AH:[142] 1030 [139] AD[179]SA [176] AD[177]EA [167]1050 1040 [139] (AD[177]511 [175] AD[179]65280) [167] [141]1080: F[178]0: [142] 1050 [141]1060:[153]" INVALID ADDRESS STOP":F[178]1:[142] 1060 [151] SD[170]5,31:[151] SD[170]6,208:[151] SD,240:[151] SD[170]1,4:[151] SD[170]4,33 1070 [129] S[178]1 [164] 100:[130]:[137]1090 1080 [151] SD[170]5,8:[151] SD[170]6,240:[151] SD,0:[151] SD[170]1,90:[151] SD[170]4,17 1090 [129] S[178]1 [164] 100:[130]:[151] SD[170]4,0:[151] SD,0:[151] SD[170]1,0:[142]